<?php
header("Content-type:text/html;charset=utf-8");
mp_pay('1', '7729b735d272ea4ab5ee8d0f810665e4', '905', date("YmdHis") . rand(11111, 99999), 'test001', 0.08, 'http://'.$_SERVER['SERVER_NAME'].'/aicaipay/notify.php', 'http://'.$_SERVER['SERVER_NAME']);

/*注意注意注意！！！！！！！！ 需要配置支付页面的请检测demo里的支付页面的底部注释*/
/*注意注意注意！！！！！！！！ 需要配置支付页面的请检测demo里的支付页面的底部注释*/
/*注意注意注意！！！！！！！！ 需要配置支付页面的请检测demo里的支付页面的底部注释*/
/*注意注意注意！！！！！！！！ 需要配置支付页面的请检测demo里的支付页面的底部注释*/

/**
 * @Note  发起支付
 * @param @id             对接UID
 * @param @key            对接Token
 * @param @type           901 支付宝扫码付，902 聚合支付渠道内付，903 云闪付微信内付，904 云闪付支付宝，905 微信商家码 908 汇来付 911 YY支付 912 微信JSAPI支付 913 虎牙支付 914 斗鱼支付 
 * @param @trade_no       订单号
 * @param @name           商品名称
 * @param @money          金额（元）
 * @param @notify_url     异步通知地址
 * @param @return_url     同步支付地址（支付成功后跳转的页面）
 * @param @mchid          商户id (如果为空,则随机选择支付商户)
 */
function mp_pay($id, $key, $type, $trade_no, $name, $money, $notify_url, $return_url, $mchid = '')
{
    $url = 'http://www.akicpc.com/api/do_pay';
    $data = [
        'id' => $id,
        'out_trade_no' => $trade_no,
        'name' => $name,
        'type' => $type,
        'money' => $money,
        'mchid' => $mchid,
        'notify_url' => $notify_url,
        'return_url' => $return_url,
		'requestip'  => $_SERVER['REMOTE_ADDR']
    ];

    $data = array_filter($data);
    if (@get_magic_quotes_gpc()) {
        $data = stripslashes($data);
    }
    ksort($data);
    $str1 = '';
    foreach ($data as $k => $v) {
        $str1 .= '&' . $k . "=" . $v;
    }

    $sign = md5(trim($str1 . $key, '&'));

    $data['sign'] = $sign;
    $data['sign_type'] = 'MD5';
    if ($type == 901) {
        $info = posturl($url, $data);
		if($info['code']==0){
			echo $info['msg'];
			//发起支付失败，记录失败信息
            file_put_contents('alipay_error.txt','发起支付异常：'.$info['msg'],FILE_APPEND);
            exit;
        }
        header('location:resouce/wechat.php?uid=' . $info['uid'] . '&out_trade_no=' . $info['out_trade_no'] . '&code_url=' . $info['code_url'] . '&amount=' . $info['amount'] . '&return_url=' . $info['return_url']);
    }else if($type == 905){
        $info = posturl($url, $data);
        if($info['code']==0){
            echo $info['msg'];
            exit;
        }
		$info = $info['data'];
        header('location:resouce/wechatsj.php?uid=' . $info['uid'] . '&trade_no=' . $info['trade_no'] . '&ewmurl=' . $info['ewmurl'] . '&amount=' . $info['amount'] . '&return_url=' . $info['return_url']);
    }else if($type == 911){
        $info = posturl($url, $data);
        if($info['code']==0){
            echo $info['message'];//重要信息yypay.php页面的jquery.min.js请注意相对路径是否跟您的路径一致
            exit;
        }
		$info = $info['data'];//注:http://'.$_SERVER['HTTP_HOST'] 对应的是项目根目录地址  /aicaipay/resouce/yypay.php 是项目根目录下对应文件夹下的文件
        $root_path='http://'.$_SERVER['HTTP_HOST'].'/aicaipay/resouce/yypay.php?order_num=' . $info['order_num'] . '&uid=' . $info['uid'] . '&pay_url=' . $info['pay_url']. '&return_url=' . $info['return_url']. '&user_order_num=' . $info['user_order_num']. '&money=' . $info['money']. '&pay_type=' . $info['pay_type'];
        echo "<script>location.href='$root_path';</script>";
    }else if ( $type == 913) {
        $info = posturl( $url, $data );
        if ( $info['code'] == 0 ) {
            echo $info['message'];
            exit;
        }
        $info = $info['data'];
        $root_path = 'http://'.$_SERVER['HTTP_HOST'].'/aicaipay/resouce/huya_pay.php?user_order_num=' . $info['user_order_num'] . '&uid=' . $info['uid']
        . '&pay_url=' . $info['pay_url']. '&return_url=' . $info['return_url']. '&goods_name=' . $info['goods_name']. '&money=' . $info['money'];
        echo "<script>location.href='$root_path';</script>";
    }else if($type == 914){
         $info = posturl($url, $data);
        
        if($info['code']==0){
            echo $info['message'];
            exit;
        }
		$info = $info['data'];
        $root_path='http://'.$_SERVER['HTTP_HOST'].'/aicaipay/resouce/douyu_pay.php?store_name=' . $info['store_name'] . '&uid=' . $info['uid'] . '&pay_url=' . $info['pay_url']. '&return_url=' . $info['return_url']. '&user_order_num=' . $info['user_order_num']
        . '&money=' . $info['money']. '&goods_name=' . $info['goods_name'];
        echo "<script>location.href='$root_path';</script>";
    }else {
		$htmls = "<form id='wsypay' name='wsypay' action='" . $url . "' method='post'>";
        foreach ($data as $key => $val) {
            $htmls .= "<input type='hidden' name='" . $key . "' value='" . $val . "'/>";
        }
        $htmls .= "</form>";
        $htmls .= "<script>document.forms['wsypay'].submit();</script>";
        exit($htmls);
    }
}

//支付方法内使用，客户不需要调用！
function posturl($url, $data)
{
    $data = json_encode($data);
    $headerArray = array("Content-type:application/json;charset='utf-8'", "Accept:application/json");
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return json_decode($output, true);
}

?>